package com.cosyhut.blocks.jode;

import com.jme.math.*;

/**
 * 
 * @author TimWorks
 * Jan 28, 2007
 * 
 * Helper functions to convert from javax.vecmath to com.jme.math
 *
 */
public class ODEHelper {

    static public Vector3f fromArraytoVector3f(SWIGTYPE_p_float v1) {
        return new Vector3f(jode.floatArray_getitem(v1, 0), jode
                .floatArray_getitem(v1, 1), jode.floatArray_getitem(v1, 2));
    }

    // ODE Matrix3f isactually 3x4
    static public Matrix3f fromArraytoMatrix3f(SWIGTYPE_p_float v1) {
        return new Matrix3f(
                jode.floatArray_getitem(v1, 0), 
                jode.floatArray_getitem(v1, 1), jode.floatArray_getitem(v1, 2),
                jode.floatArray_getitem(v1, 4), jode.floatArray_getitem(v1, 5),
                jode.floatArray_getitem(v1, 6), jode.floatArray_getitem(v1, 8),
                jode.floatArray_getitem(v1, 9), jode.floatArray_getitem(v1, 10));
    }

    static public SWIGTYPE_p_float fromVector3ftoArray(Vector3f v) {
        SWIGTYPE_p_float result = jode.new_floatArray(3);
        jode.floatArray_setitem(result, 0, v.x);
        jode.floatArray_setitem(result, 1, v.y);
        jode.floatArray_setitem(result, 2, v.z);
        return result;
    }
    // ODE Matrix3f isactually 3x4
    static public SWIGTYPE_p_float fromMatrix3ftoArray(Matrix3f v) {
        SWIGTYPE_p_float result = jode.new_floatArray(12);
        jode.floatArray_setitem(result, 0, v.m00);
        jode.floatArray_setitem(result, 1, v.m01);
        jode.floatArray_setitem(result, 2, v.m02);
        jode.floatArray_setitem(result, 4, v.m10);
        jode.floatArray_setitem(result, 5, v.m11);
        jode.floatArray_setitem(result, 6, v.m12);
        jode.floatArray_setitem(result, 8, v.m20);
        jode.floatArray_setitem(result, 9, v.m21);
        jode.floatArray_setitem(result, 10, v.m22);
        return result;
    }
    
}
